
#ifndef INCLUDED_CONSTANTS_H
#define INCLUDED_CONSTANTS_H

#include <string>
#include "XmlNode.h"

namespace tinkle {

#define START_STREAM StartStream()
#define NS_CLIENT NsClient()
#define NS_SERVER NsServer()
#define NS_STREAM NsStream()
#define NS_BIND NsBind()
#define NS_SASL NsSASL()
#define NS_SESSION NsSession()
#define NS_STANZA NsStanza()
#define NS_XSTREAM NsXstream()
#define NS_TLS NsTLS()
#define NS_ROSTER NsRoster()

const std::string & StartStream();
const std::string & NsClient();
const std::string & NsServer();
const std::string & NsStream();
const std::string & NsBind();
const std::string & NsSASL();
const std::string & NsSession();
const std::string & NsStanza();
const std::string & NsTLS();
const std::string & NsXstream();
const std::string & NsRoster();

extern const std::string STR_STREAM;
extern const std::string STR_FEATURES;
extern const std::string STR_AUTH;
extern const std::string STR_MECHANISM;
extern const std::string STR_SUCCESS;
extern const std::string STR_BIND;
extern const std::string STR_SESSION;
extern const std::string STR_JID;

// three kinds of stanza
extern const std::string STR_IQ;
extern const std::string STR_MESSAGE;
extern const std::string STR_PRESENCE;

// attributes of stanza
extern const std::string STR_TO;
extern const std::string STR_FROM;
extern const std::string STR_ID;
extern const std::string STR_TYPE;

// presence stanza
extern const std::string STR_SHOW;
extern const std::string STR_STATUS;

extern const std::string STR_GMAIL_COM;

extern const std::string STR_GET;
extern const std::string STR_SET;
extern const std::string STR_RESULT;

extern const std::string STR_QUERY;

}

#endif